package liecai_class.day02;

/**
 * 用递归实现汉诺塔
 */
public class HanoiTower {
    public static void main(String[] args) {
        hanoi(3,'A','C','B');
    }
    public static void hanoi(int n,char start, char goal, char assist){
        if (n==1){
            //圆盘只有一个时, 直接从起点杆移动到目标杆
            System.out.println("将第1个圆盘从"+start+"移动到"+goal);
            return;
        }
        //将n-1个圆盘从起点杆移动到辅助杆, 目标杆作为辅助杆
        hanoi(n-1,start,assist,goal);
        //将第n个圆盘从起点杆移动到目标杆
        System.out.println("将第"+n+"个圆盘从"+start+"移动到"+goal);
        //将那n-1个圆盘从辅助杆移动到目标杆, 起点杆作为辅助杆
        hanoi(n-1,assist,goal,start);
    }
}
